package com.ruoyi.manage.service;

import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.manage.domain.Smallarea;
import com.ruoyi.system.domain.SysRole;

import java.util.List;

/**
 * 小区 服务层
 * 
 * @author KEXUE
 * @date 2019-04-18
 */
public interface ISmallareaService 
{
	/**
	 * 查询小区管理数据
	 *
	 * @param smallarea 小区信息
	 * @return 小区信息集合
	 */
	public List<Smallarea> selectSmallareaList(Smallarea smallarea);

	/**
	 * 查询小区管理树
	 *
	 * @param smallarea 小区信息
	 * @return 所有小区信息
	 */
	public List<Ztree> selectSmallareaTree(Smallarea smallarea);

	/**
	 * 根据角色ID查询菜单
	 *
	 * @param role 角色对象
	 * @return 菜单列表
	 */
	public List<Ztree> roleSmallareaTreeData(SysRole role);

	/**
	 * 查询小区人数
	 *
	 * @param parentId 父小区ID
	 * @return 结果
	 */
	public int selectSmallareaCount(Long parentId);

	/**
	 * 查询小区是否存在用户
	 *
	 * @param smallareaId 小区ID
	 * @return 结果 true 存在 false 不存在
	 */
	public boolean checkSmallareaExistUser(Long smallareaId);

	/**
	 * 删除小区管理信息
	 *
	 * @param smallareaId 小区ID
	 * @return 结果
	 */
	public int deleteSmallareaById(Long smallareaId);

	/**
	 * 新增保存小区信息
	 *
	 * @param smallarea 小区信息
	 * @return 结果
	 */
	public int insertSmallarea(Smallarea smallarea);

	/**
	 * 修改保存小区信息
	 *
	 * @param smallarea 小区信息
	 * @return 结果
	 */
	public int updateSmallarea(Smallarea smallarea);

	/**
	 * 根据小区ID查询信息
	 *
	 * @param smallareaId 小区ID
	 * @return 部门信息
	 */
	public Smallarea selectSmallareaById(Long smallareaId);

	/**
	 * 校验小区名称是否唯一
	 *
	 * @param smallarea 小区信息
	 * @return 结果
	 */
	public String checkSmallareaNameUnique(Smallarea smallarea);
	
}
